#include "wiz1.h"
#include "connexion.h"
#include "icore.h"
#include <QtGui>
#include <QtCore>
#include <QtSql>

  QString g_path;
  extern QString g_pathabsolu;
  QString texte              = "";
  QString texteHtml          = "";
using namespace Common;
wiz1::wiz1(){
  g_path                     = "";
  setOption(QWizard::NoBackButtonOnStartPage,true);

  setPage(pageUn    ,new page1);
  setPage(pageDeux  ,new page2);
  setPage(pageFinale,new pageFin);
  setStartId(pageUn);
  qDebug() << "Un";
  
}

wiz1::~wiz1(){}

page1::page1(){
  setupUi(this);
    //----------verification de la presence de DrTux---------------------------------
   /* QDir dirDrTux               (g_pathabsolu+"/../drtux");
    if (dirDrTux . exists() == false){
      QMessageBox::warning(0,trUtf8("Erreur"),trUtf8("Le répertoire Pensebetux n'est pas placé dans le répertoire Programmes "
                                                     "à côté de DrTux.\n"
                                                     "L'installation ne peut pas se faire correctement. "),QMessageBox::Ok);
      wizard()->close();
      
    }*/
  //------------------------------------------------------------------------------
   texte             = trUtf8("Ce programme permet l'installation de Pensebetux.<br/>"
                  "Ce programme permet de mettre une alerte pour un patient et une tâche à une date donnée.<br/>"
                              "Il s'intègre très bien à DrTux en récupérant le nom et le prénom du patient.<br/>"
                                     "Veuillez lancer le setup.");
  texteHtml         = "<html><body><font size = 4 color = ""blue"">"+texte+"</font></body></html>";
  label                     -> setText(texteHtml);
  label                     -> setWordWrap(true);
    label                   -> resize(380,200);
  QGridLayout *layout       = new QGridLayout(this);
               layout      -> addWidget(label,0,0);
  setLayout                   (layout);
  qDebug() << "deux";
  
}

page1::~page1(){}

page2::page2(){
  setupUi(this);
             m_model          = new QDirModel;
             m_model         -> setFilter(QDir::AllDirs|QDir::NoDotAndDotDot);
             m_tree           = new QTreeView(this);
             m_tree          -> setModel(m_model);
             m_tree          -> resize(380,200);
             m_tree          -> setExpanded(m_model->index(0,0,QModelIndex()),true);
             m_tree          -> header() -> setResizeMode(0,QHeaderView::ResizeToContents);
             m_tree          -> show();

   texte             = trUtf8("Veuillez choisir l'emplacement de MedinTux et double cliquer dessus.");
  texteHtml         = "<html><body><font size = 4 color = ""green"">"+texte+"</font></body></html>";
  label                    -> setText(texteHtml);
  label                    -> resize(380,70);
  QGridLayout *layout       = new QGridLayout(this);
               layout      -> addWidget(label,0,0);
               layout      -> addWidget(m_tree,1,0);
  setLayout                   (layout);

  connect(m_tree,SIGNAL(activated(const QModelIndex&)),this,SLOT(choixMedintux(const QModelIndex&)));
  qDebug() << "trois";
}

page2::~page2(){}

pageFin::pageFin(){
  setupUi(this);
  setFinalPage(true);
  texte                     = trUtf8("Veuillez cliquer sur Test pour vérifier la bonne installation du "
                                     "menu de Pensebetux.");
  texteHtml                 = "<html><body><font size = 4 color = ""blue"">"+texte+"</font></body></html>";
  test                      =  new QPushButton;
  test                      -> setText("Test");
  test                      -> setEnabled(true);
  test                      -> resize(150,70);  
    test                     -> setMinimumHeight(70);
  test                      -> setMinimumWidth(150);
  test                      -> setMaximumHeight(70);
  test                      -> setMaximumWidth(150);
  label                     -> resize(380,70);
  label                     -> setText(texteHtml);
  label                     -> setWordWrap(true);
  QGridLayout *layout       =  new QGridLayout(this);
               layout      ->  addWidget(label,0,0,1,3);
               layout      ->  addWidget(test,1,1,1,1);
  setLayout                   (layout);
  qDebug() << "quatre";

  qDebug() << "cinq";
  connect(test,SIGNAL(pressed()),this,SLOT(resultat()));
}

pageFin::~pageFin(){}

void page2::installCompta(){
   
  //------------creation dossiers dans ../../drtux/bin/Ressources/Menus/---------
  QDir  dirMenus              (g_path+"/Programmes/drtux/bin/Ressources/Menus");
  qDebug() << "dans installcompta"+g_path+"/Programmes/drtux/bin/Ressources/Menus";
        dirMenus             . mkdir("Alarmes");
        dirMenus             . mkdir("LectureAlertes");
  QFile alarmesText          ( g_path+"/Programmes/pensebetux/Menus/Alarmes/definition.txt" );
  QFile alarmesPng           ( g_path+"/Programmes/pensebetux/Menus/Alarmes/alarmes.png");
  QFile lectureText          ( g_path+"/Programmes/pensebetux/Menus/LectureAlertes/definition.txt" );
  QFile lecturePng           ( g_path+"/Programmes/pensebetux/Menus/LectureAlertes/lecture.png");
        alarmesText          . copy(g_path+"/Programmes/drtux/bin/Ressources/Menus/Alarmes/definition.txt");
        alarmesPng           . copy(g_path+"/Programmes/drtux/bin/Ressources/Menus/Alarmes/alarmes.png");
        lectureText          . copy(g_path+"/Programmes/drtux/bin/Ressources/Menus/LectureAlertes/definition.txt");
        lecturePng           . copy(g_path+"/Programmes/drtux/bin/Ressources/Menus/LectureAlertes/lecture.png");

}

void page2::choixMedintux(const QModelIndex& index){
  QString indexMedintux       = m_model -> data(index).toString();
  qDebug()                  << "g_indexMedintux ="+indexMedintux;
  g_path                      = m_model -> filePath(index);
  qDebug()                  << "path ="+g_path;
   texte               = trUtf8("le chemin de votre dossier MedinTux est : ")+g_path;
  QString lpath               = "<html><body><font size=4 color = ""red""><bold>"+texte+"</bold></font></body></html>";
  label                     -> setText(lpath);
  label                     -> setWordWrap(true);
  emit installCompta();
  emit instalTables();
}

void pageFin::resultat(){
  QString texte = "";
  QString texteHtml = "";
  qDebug() << "six";
   qDebug() << QString::number(pageFinale);
  if(2 ==pageFinale){
   qDebug() << "sept";

  QFile        alarmesText    (g_path+"/Programmes/drtux/bin/Ressources/Menus/Alarmes/definition.txt");
  QFile        alarmesPng     (g_path+"/Programmes/drtux/bin/Ressources/Menus/Alarmes/alarmes.png");
  QFile        lectureText    (g_path+"/Programmes/drtux/bin/Ressources/Menus/LectureAlertes/definition.txt");
  QFile        lecturePng     (g_path+"/Programmes/drtux/bin/Ressources/Menus/LectureAlertes/lecture.png");
  qDebug() << __FILE__ << QString::number(__LINE__) << " def =" << g_path+"/Programmes/drtux/bin/Ressources/Menus/Alarmes/definition.txt" ;
  if(alarmesText.exists() == false){
  qDebug() << "dix";
      texte                =  trUtf8("Erreur: Alarmes ne s'est pas installé correctement.");
      texteHtml            =  "<html><body><font size = 6 color = ""red"">"+texte+"</font></body></html>";
               
      label                -> setText(texteHtml);
      label                -> setWordWrap(true);
     
  }
  else if(alarmesPng.exists() == false){
      texte                =  trUtf8("Erreur: Alarmes ne s'est pas installé correctement.");
      texteHtml            =  "<html><body><font size = 6 color = ""red"">"+texte+"</font></body></html>";
      label                -> setText(texteHtml);
      label                -> setWordWrap(true);
  }
    else if(lectureText.exists() == false){
      texte                =  trUtf8("Erreur: LectureAlertes ne s'est pas installé correctement.");
      texteHtml            =  "<html><body><font size = 6 color = ""red"">"+texte+"</font></body></html>";
      label                -> setText(texteHtml);
      label                -> setWordWrap(true);
  }
    else if(lecturePng.exists() == false){
      texte                =  trUtf8("Erreur: LectureAlertes ne s'est pas installé correctement.");
      texteHtml            =  "<html><body><font size = 6 color = ""red"">"+texte+"</font></body></html>";
      label                -> setText(texteHtml);
      label                -> setWordWrap(true);
  }
  else{
      qDebug() << "onze";
      texte                 = trUtf8("Félicitations pour votre installation.<br/>Veuillez relancer Manager.");
      texteHtml             = "<html><body><font size = 6 color = ""red"">"+texte+"</font></body></html>";
      label                -> setText(texteHtml);
      label                -> setWordWrap(true);
      
  }
  }
 
}

void page2::instalTables(){
   if(!ICore::instance()->initialize()){
    QMessageBox::critical(0,trUtf8("Fatal"),trUtf8("Connection à la base impossible."),QMessageBox::Ok);
  }

}
